//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.itheima.pinda.authority.dto.auth;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import org.hibernate.validator.constraints.Length;

@ApiModel(
        value = "MenuSaveDTO",
        description = "菜单"
)
public class MenuSaveDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("菜单名称")
    @NotEmpty(
            message = "菜单名称不能为空"
    )
    @Length(
            max = 20,
            message = "菜单名称长度不能超过20"
    )
    private String name;
    @ApiModelProperty("功能描述")
    @Length(
            max = 200,
            message = "功能描述长度不能超过200"
    )
    private String describe;
    @ApiModelProperty("是否公开菜单")
    private Boolean isPublic;
    @ApiModelProperty("对应路由path")
    @Length(
            max = 255,
            message = "对应路由path长度不能超过255"
    )
    private String path;
    @ApiModelProperty("对应路由组件component")
    @Length(
            max = 255,
            message = "对应路由组件component长度不能超过255"
    )
    private String component;
    @ApiModelProperty("是否启用")
    private Boolean isEnable;
    @ApiModelProperty("排序")
    private Integer sortValue;
    @ApiModelProperty("菜单图标")
    @Length(
            max = 255,
            message = "菜单图标长度不能超过255"
    )
    private String icon;
    @ApiModelProperty("菜单分组")
    @Length(
            max = 20,
            message = "菜单分组长度不能超过20"
    )
    private String group;
    @ApiModelProperty("父级菜单id")
    private Long parentId;

    public static MenuSaveDTO.MenuSaveDTOBuilder builder() {
        return new MenuSaveDTO.MenuSaveDTOBuilder();
    }

    public String getName() {
        return this.name;
    }

    public String getDescribe() {
        return this.describe;
    }

    public Boolean getIsPublic() {
        return this.isPublic;
    }

    public String getPath() {
        return this.path;
    }

    public String getComponent() {
        return this.component;
    }

    public Boolean getIsEnable() {
        return this.isEnable;
    }

    public Integer getSortValue() {
        return this.sortValue;
    }

    public String getIcon() {
        return this.icon;
    }

    public String getGroup() {
        return this.group;
    }

    public Long getParentId() {
        return this.parentId;
    }

    public MenuSaveDTO setName(final String name) {
        this.name = name;
        return this;
    }

    public MenuSaveDTO setDescribe(final String describe) {
        this.describe = describe;
        return this;
    }

    public MenuSaveDTO setIsPublic(final Boolean isPublic) {
        this.isPublic = isPublic;
        return this;
    }

    public MenuSaveDTO setPath(final String path) {
        this.path = path;
        return this;
    }

    public MenuSaveDTO setComponent(final String component) {
        this.component = component;
        return this;
    }

    public MenuSaveDTO setIsEnable(final Boolean isEnable) {
        this.isEnable = isEnable;
        return this;
    }

    public MenuSaveDTO setSortValue(final Integer sortValue) {
        this.sortValue = sortValue;
        return this;
    }

    public MenuSaveDTO setIcon(final String icon) {
        this.icon = icon;
        return this;
    }

    public MenuSaveDTO setGroup(final String group) {
        this.group = group;
        return this;
    }

    public MenuSaveDTO setParentId(final Long parentId) {
        this.parentId = parentId;
        return this;
    }

    public MenuSaveDTO() {
    }

    public MenuSaveDTO(final String name, final String describe, final Boolean isPublic, final String path, final String component, final Boolean isEnable, final Integer sortValue, final String icon, final String group, final Long parentId) {
        this.name = name;
        this.describe = describe;
        this.isPublic = isPublic;
        this.path = path;
        this.component = component;
        this.isEnable = isEnable;
        this.sortValue = sortValue;
        this.icon = icon;
        this.group = group;
        this.parentId = parentId;
    }

    public String toString() {
        return "MenuSaveDTO(super=" + super.toString() + ", name=" + this.getName() + ", describe=" + this.getDescribe() + ", isPublic=" + this.getIsPublic() + ", path=" + this.getPath() + ", component=" + this.getComponent() + ", isEnable=" + this.getIsEnable() + ", sortValue=" + this.getSortValue() + ", icon=" + this.getIcon() + ", group=" + this.getGroup() + ", parentId=" + this.getParentId() + ")";
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof MenuSaveDTO)) {
            return false;
        } else {
            MenuSaveDTO other = (MenuSaveDTO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$name = this.getName();
                Object other$name = other.getName();
                if (this$name == null) {
                    if (other$name != null) {
                        return false;
                    }
                } else if (!this$name.equals(other$name)) {
                    return false;
                }

                Object this$describe = this.getDescribe();
                Object other$describe = other.getDescribe();
                if (this$describe == null) {
                    if (other$describe != null) {
                        return false;
                    }
                } else if (!this$describe.equals(other$describe)) {
                    return false;
                }

                Object this$isPublic = this.getIsPublic();
                Object other$isPublic = other.getIsPublic();
                if (this$isPublic == null) {
                    if (other$isPublic != null) {
                        return false;
                    }
                } else if (!this$isPublic.equals(other$isPublic)) {
                    return false;
                }

                label110: {
                    Object this$path = this.getPath();
                    Object other$path = other.getPath();
                    if (this$path == null) {
                        if (other$path == null) {
                            break label110;
                        }
                    } else if (this$path.equals(other$path)) {
                        break label110;
                    }

                    return false;
                }

                label103: {
                    Object this$component = this.getComponent();
                    Object other$component = other.getComponent();
                    if (this$component == null) {
                        if (other$component == null) {
                            break label103;
                        }
                    } else if (this$component.equals(other$component)) {
                        break label103;
                    }

                    return false;
                }

                Object this$isEnable = this.getIsEnable();
                Object other$isEnable = other.getIsEnable();
                if (this$isEnable == null) {
                    if (other$isEnable != null) {
                        return false;
                    }
                } else if (!this$isEnable.equals(other$isEnable)) {
                    return false;
                }

                label89: {
                    Object this$sortValue = this.getSortValue();
                    Object other$sortValue = other.getSortValue();
                    if (this$sortValue == null) {
                        if (other$sortValue == null) {
                            break label89;
                        }
                    } else if (this$sortValue.equals(other$sortValue)) {
                        break label89;
                    }

                    return false;
                }

                label82: {
                    Object this$icon = this.getIcon();
                    Object other$icon = other.getIcon();
                    if (this$icon == null) {
                        if (other$icon == null) {
                            break label82;
                        }
                    } else if (this$icon.equals(other$icon)) {
                        break label82;
                    }

                    return false;
                }

                Object this$group = this.getGroup();
                Object other$group = other.getGroup();
                if (this$group == null) {
                    if (other$group != null) {
                        return false;
                    }
                } else if (!this$group.equals(other$group)) {
                    return false;
                }

                Object this$parentId = this.getParentId();
                Object other$parentId = other.getParentId();
                if (this$parentId == null) {
                    if (other$parentId != null) {
                        return false;
                    }
                } else if (!this$parentId.equals(other$parentId)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof MenuSaveDTO;
    }

    public int hashCode() {
        boolean PRIME = true;
        int result = 1;
        Object $name = this.getName();
        result = result * 59 + ($name == null ? 43 : $name.hashCode());
        Object $describe = this.getDescribe();
        result = result * 59 + ($describe == null ? 43 : $describe.hashCode());
        Object $isPublic = this.getIsPublic();
        result = result * 59 + ($isPublic == null ? 43 : $isPublic.hashCode());
        Object $path = this.getPath();
        result = result * 59 + ($path == null ? 43 : $path.hashCode());
        Object $component = this.getComponent();
        result = result * 59 + ($component == null ? 43 : $component.hashCode());
        Object $isEnable = this.getIsEnable();
        result = result * 59 + ($isEnable == null ? 43 : $isEnable.hashCode());
        Object $sortValue = this.getSortValue();
        result = result * 59 + ($sortValue == null ? 43 : $sortValue.hashCode());
        Object $icon = this.getIcon();
        result = result * 59 + ($icon == null ? 43 : $icon.hashCode());
        Object $group = this.getGroup();
        result = result * 59 + ($group == null ? 43 : $group.hashCode());
        Object $parentId = this.getParentId();
        result = result * 59 + ($parentId == null ? 43 : $parentId.hashCode());
        return result;
    }

    public static class MenuSaveDTOBuilder {
        private String name;
        private String describe;
        private Boolean isPublic;
        private String path;
        private String component;
        private Boolean isEnable;
        private Integer sortValue;
        private String icon;
        private String group;
        private Long parentId;

        MenuSaveDTOBuilder() {
        }

        public MenuSaveDTO.MenuSaveDTOBuilder name(final String name) {
            this.name = name;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder describe(final String describe) {
            this.describe = describe;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder isPublic(final Boolean isPublic) {
            this.isPublic = isPublic;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder path(final String path) {
            this.path = path;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder component(final String component) {
            this.component = component;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder isEnable(final Boolean isEnable) {
            this.isEnable = isEnable;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder sortValue(final Integer sortValue) {
            this.sortValue = sortValue;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder icon(final String icon) {
            this.icon = icon;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder group(final String group) {
            this.group = group;
            return this;
        }

        public MenuSaveDTO.MenuSaveDTOBuilder parentId(final Long parentId) {
            this.parentId = parentId;
            return this;
        }

        public MenuSaveDTO build() {
            return new MenuSaveDTO(this.name, this.describe, this.isPublic, this.path, this.component, this.isEnable, this.sortValue, this.icon, this.group, this.parentId);
        }

        public String toString() {
            return "MenuSaveDTO.MenuSaveDTOBuilder(name=" + this.name + ", describe=" + this.describe + ", isPublic=" + this.isPublic + ", path=" + this.path + ", component=" + this.component + ", isEnable=" + this.isEnable + ", sortValue=" + this.sortValue + ", icon=" + this.icon + ", group=" + this.group + ", parentId=" + this.parentId + ")";
        }
    }
}
